package com.sgb.kjwl.api.service;

import com.sgb.kjwl.model.entity.EmploymentEntity;
import com.sgb.kjwl.model.entity.FindPackersEntity;
import com.sgb.kjwl.model.entity.FindPeopleEntity;
import com.sgb.kjwl.model.entity.packers.BuildCompanyInfoEntity;
import com.sgb.kjwl.model.entity.self.SelfEmploymentEntity;
import com.sgb.kjwl.model.entity.self.SelfTeamMemberEntity;
import com.sgb.kjwl.model.entity.user.CompanyInfoEntity;
import com.sgb.link.entity.PickFilterEntity;
import com.sgb.kjwl.model.entity.PopularWorkersEntity;
import com.sgb.kjwl.model.entity.ShopTeamInfoEntity;
import com.sgb.kjwl.model.entity.TeamPriceItemEntity;
import com.sgb.kjwl.model.entity.TenderListEntity;
import com.sgb.kjwl.model.entity.packers.ApplyCompanyEntity;
import com.sgb.kjwl.model.entity.packers.EngineeringCompanyEntity;
import com.sgb.kjwl.model.entity.packers.InviteCompanyEntity;
import com.sgb.kjwl.model.entity.packers.LaborWorkMomentDetailEntity;
import com.sgb.kjwl.model.entity.packers.LabourServiceAndEmploymentEntity;
import com.sgb.kjwl.model.entity.packers.LeaguerCompanyEntity;
import com.sgb.kjwl.model.entity.packers.MemberCompanyEntity;
import com.sgb.kjwl.model.entity.packers.TeamAlbumEntity;
import com.sgb.kjwl.model.entity.packers.MyCompanyEntity;
import com.sgb.kjwl.model.entity.packers.OnLineEntity;
import com.sgb.kjwl.model.entity.packers.TeamDetailEntity;
import com.sgb.kjwl.model.entity.packers.TeamPersonEntity;
import com.sgb.kjwl.model.entity.self.ResponseList;
import com.sgb.kjwl.model.entity.self.SelfEmploymentEditEntity;
import com.sgb.kjwl.model.entity.self.SelfTeamAchieveEntity;
import com.sgb.kjwl.model.entity.self.SelfTeamDeviceEntity;
import com.sgb.kjwl.model.entity.self.SelfTeamIntroduceEntity;
import com.sgb.kjwl.model.entity.self.SelfTeamOfferEntity;
import com.sgb.kjwl.model.entity.self.SelfWorkerPublishEntity;
import com.sgb.kjwl.model.entity.user.AddressEntity;
import com.sgb.net.entity.ListResponse;
import com.swgk.core.base.model.entity.BaseEntity;
import com.swgk.core.util.PickSelectEntity;
import com.swgk.core.view.selection.CommonPopEntity;

import java.util.List;
import java.util.Map;

import retrofit2.Call;
import retrofit2.http.Body;
import retrofit2.http.GET;
import retrofit2.http.POST;
import retrofit2.http.Path;
import retrofit2.http.Query;

/**
 * @author younghow
 * @date 2021/8/9
 * description: 工队的新接口，地址全部写在里面
 */
public interface TeamNewInterfaceAPI {

    /**
     * 个人中心-工队与人员-设备-业绩-相册-施工风采关联接口
     *
     * @param map 参数列表
     * @return 返回的实例对象
     */
    @POST("team/v2/app/personalCenter/addRelation")
    Call<BaseEntity<String>> setAddRelation(@Body Map<String, Object> map);


    /**
     * 获取工队的关注列表
     *
     * @param map 包含两个参数page 当前页数   limit 当前页的item个数 type 1--施工工队  2--班组工队
     * @return 返回的实例对象
     */
    @POST("team/attention/pageAttentionTeam")
    Call<BaseEntity<ListResponse<List<FindPackersEntity>>>> getAttentionTeamList(@Body Map<String, Object> map);

    /**
     * 劳务用工的关注列表
     *
     * @param map 参数列表 包含两个参数page 当前页数   limit 当前页的item个数
     * @return 返回的实例对象
     */
    @POST("team/attention/pageAttentionLaborEmployment")
    Call<BaseEntity<ListResponse<List<LabourServiceAndEmploymentEntity>>>> getPackerAttentionLaborList(@Body Map<String, Object> map);

    /**
     * 工程公司的关注列表
     *
     * @param map 参数列表 包含两个参数page 当前页数   limit 当前页的item个数
     * @return 返回的实例对象
     */
    @POST("team/attention/pageAttentionEngineerCompany")
    Call<BaseEntity<ListResponse<List<EngineeringCompanyEntity>>>> getPackerAttentionCompanyList(@Body Map<String, Object> map);

    /**
     * 工人的关注列表
     *
     * @param map 参数列表 包含两个参数page 当前页数   limit 当前页的item个数
     * @return 返回的实例对象
     */
    @POST("team/attention/pageAttentionWorker")
    Call<BaseEntity<ListResponse<List<FindPeopleEntity>>>> getPackerAttentionWorkerList(@Body Map<String, Object> map);

    /**
     * 临时用工的关注列表
     *
     * @param map 参数列表 包含两个参数page 当前页数   limit 当前页的item个数
     * @return 返回的实例对象
     */
    @POST("team/attention/pageAttentionEmployment")
    Call<BaseEntity<ListResponse<List<EmploymentEntity>>>> getTemporaryEmploymentList(@Body Map<String, Object> map);

    /**
     * 工种报价的关注列表
     *
     * @param map 参数列表 包含两个参数page 当前页数   limit 当前页的item个数
     * @return 返回的实例对象
     */
    @POST("team/attention/pageAttentionTeamPrice")
    Call<BaseEntity<ListResponse<List<TeamPriceItemEntity>>>> getJobTypeQuotationList(@Body Map<String, Object> map);

    /**
     * 关注接口
     *
     * @param isAttention 是否关注 ture:关注；false:取消关注
     * @param no          需要关注的工人no
     * @param type        类型 1:工队;2:工程公司;3:找工人;4:临时用工;5:工种报价。6:劳务用工
     * @return 返回的实例对象 这是判断关注成功与否的关键
     */
    @GET("team/attention/addAttention")
    Call<BaseEntity<String>> follow(@Query("isAttention") boolean isAttention, @Query("no") String no, @Query("type") int type);

    /**
     * 劳务用工  三级工种筛选
     *
     * @return 返回一个集合
     */
    @GET("team/occupation/getLinkAgeWorkType")
    Call<BaseEntity<List<AddressEntity<List<AddressEntity<List<AddressEntity>>>>>>> getLinkAgeWorkType();

    /**
     * 工队-工程分类 三层 结构
     *
     * @return 工程分类的数据
     */
    @GET("team/common/findCategoryListTree")
    Call<BaseEntity<List<PickFilterEntity<List<PickFilterEntity<List<PickFilterEntity>>>>>>> getCategoryListTree();

    /**
     * 工队-工程分类 一级分类
     * @return
     */
    @GET("team/common/getTeamCategoryAllList")
    Call<BaseEntity<List<PickFilterEntity>>> getFirstCategoryList();
    //工队-工程分类
    @GET("team/common/getTeamCategoryAllList")
    Call<BaseEntity<List<PickSelectEntity>>> getCategoryList();
    /**
     * 工队首页找工人的列表
     *
     * @param map (包含参数){
     *            "age": 0, 年龄
     *            "areaNoList": [], 所在地区市
     *            "categoryNo": "", 劳务分类编号
     *            "cityNo": "", 所在地区市
     *            "industryNo": "", 	劳务行业编号
     *            "isHealth": 0, 是否有健康证明
     *            "limit": 0, 每页显示多少条
     *            "page": 0, 当前页
     *            "proficiency": 0, 熟练度
     *            "provinceNo": "", 所在地区省
     *            "publishTime": "", 发布时间
     *            "workType": "",工种
     *            "workYear": 0 工龄 1-3传1 3-5传2 5-10传3 10以上传4
     *            }
     * @return 返回找工人的列表
     */
    @POST("team/worker/listWorker")
    Call<BaseEntity<ListResponse<List<FindPeopleEntity>>>> getPackerPeopleList(@Body Map<String, Object> map);

    /**
     * 首页-找工程列表（劳务分包）
     *
     * @param map 参数 {
     *            "areaNo": "",
     *            "categoryNo": "",
     *            "cityNo": "",
     *            "firstCategoryNo": "",
     *            "limit": 0,
     *            "page": 0,
     *            "provinceNo": "",
     *            "secondCategoryNo": "",
     *            "teamNumber": "",
     *            "teamSize": "",
     *            "thirdCategoryNo": ""
     *            }
     * @return 返回的列表
     */
    @POST("v3/app/recruit/projectSubcontracting")
    Call<BaseEntity<List<TenderListEntity>>> getTenderApplyingList(@Body Map<String, Object> map);

    /**
     * 临时用工新增和编辑
     *
     * @param entity 上传的参数的键值对 {
     *               "address": "", 详细地址
     *               "ageRquirement": "", 年龄要求
     *               "areaName": "", 选择区域的名字
     *               "areaNo": "", 选择区域的no
     *               "categoryNo": "", 选择行业的no
     *               "cityName": "", 选择城市的名字
     *               "cityNo": "", 选择城市的no
     *               "contact": "", 联系人
     *               "contactPhone": "", 联系电话
     *               "dietCondition": "", 饮食条件
     *               "duration": 0, 用工时长
     *               "durationUnit": 0, 用工时长单位
     *               "employmentCompany": "", 用工单位
     *               "employmentDescription": "", 工作内容
     *               "employmentNumber": 0, 用工人数
     *               "employmentStatus": 0, 用工状态
     *               "employmentType": 0, 用工类型
     *               "endTime": 0, 截止日期
     *               "fileDTOList": [
     *               {
     *               "collectionTime": 0, 领证时间
     *               "name": "", 文件名称
     *               "url": [] 文件地址
     *               }
     *               ],  包含上传的图片 用工图片
     *               "healthProve": "", 健康证明(1:需要,2:不需要)
     *               "imId": "", 在线咨询id
     *               "imName": "", 在线咨询名称
     *               "industryNo": "", 行业分类
     *               "latitude": "", 纬度
     *               "longitude": "", 经度
     *               "nationRquirement": "", 民族要求(1:汉族,...)
     *               "newFiledArr": [
     *               {
     *               "content": "", 新字段内容不能为空
     *               "name": "" 字段名称
     *               }
     *               ], 自定义字段内容
     *               "no": "", 编号
     *               "payRoll": "", 薪资发放(1月 2季度 3年)
     *               "performanceRquirement": "", 业绩要求
     *               "professClothing": "", 专业服装
     *               "projectName": "", 服务项目
     *               "provinceName": "", 省名称
     *               "provinceNo": "", 省编号
     *               "salary": "", 	薪资
     *               "salaryManager": "", 薪资管理方式 (1保底工资 2绩效方式)
     *               "salaryType": 0, 薪资方式
     *               "salaryUnit": 0, 薪资单位
     *               "sexRquirement": "", 性别要求(1不限,2男,3女)
     *               "skillRequirement": "", 技术要求
     *               "startTime": 0, 用工日期
     *               "stayCondition": "", 住宿条件
     *               "workType": [], 所需工种
     *               "workYearRquirement": "" 工龄要求(1不限 2:1年内,3:1-3年,4:3-5年,5:5-10年,6:10年以上)
     *               }
     * @return 返回的结果
     */
    @POST("team/employment/addEmployment")
    Call<BaseEntity> uploadEmployment(@Body SelfEmploymentEditEntity entity);

    /**
     * 上传劳务用工
     *
     * @param map 上传的参数的键值对 {
     *            "address": "", 详细地址
     *            "areaName": "", 地区的名字
     *            "areaNo": "",  地区的no
     *            "categoryNo": "", 选择行业的no
     *            "cityName": "", 城市的名字
     *            "cityNo": "", 城市的no
     *            "companyNo": "", 公司的no (当当前用户为企业用户的时候传入)
     *            "contactName": "", 联系人姓名
     *            "contactNumber": "", 联系人电话
     *            "createTime": 0, 创建的日期和时间
     *            "employmentNumber": 0, 用工人数
     *            "id": "", 当前的劳务用工的id
     *            "imId": "", im的id(客服的即时通讯的id)
     *            "imName": "", im的名字(客服的即时通讯的名字)
     *            "industryNo": "", 行业分类
     *            "isEnable": 0, 是否启用
     *            "latitude": "", 纬度
     *            "longitude": "", 经度
     *            "no": "", 当前劳务用工的no
     *            "provinceName": "", 省的名字
     *            "provinceNo": "", 省的no
     *            "salary": 0, 自定义薪资的薪资标准
     *            "salaryType": "", 薪资的类型(1 自定义薪资 2 电议 3 面议)
     *            "salaryUnit": 0, 薪资的发放类型(1 月 2 季度 3 年)
     *            "userNo": "", 当前的用户的no (当当前用户为个人用户的时候传入)
     *            "workContent": "", 工作内容
     *            "workNo": "" 工作的no
     *            }
     * @return 返回的结果
     */
    @POST("team/laborEmployment")
    Call<BaseEntity> uploadLabour(@Body Map<String, Object> map);

    /**
     * 首页-临时用工列表
     *
     * @param map 上传的参数的键值对 {
     *            "areaNoList": [], 地区的no集合(当时设计的地区可以多选)
     *            "categoryNo": "", 选择行业的no
     *            "cityNo": "", 城市的no
     *            "employmentStatus": 0, 用工状态(急招 正常)
     *            "employmentType": 0, 用工类型
     *            "industryNo": "", 行业的分类
     *            "limit": 0, 一页的个数
     *            "page": 0, 页数
     *            "provinceNo": "", 省的no
     *            "workType": "" 工作类型
     *            }
     * @return 临时用工前台和后台的列表项
     */
    @POST("team/employment/listEmployment")
    Call<BaseEntity<ListResponse<List<EmploymentEntity>>>> getEmploymentList(@Body Map<String, Object> map);

    /**
     * 获取劳务用工前台和后台的列表项
     *
     * @param map 上传的参数 {
     *            "areaNo": [],
     *            "categoryNo": "",
     *            "cityNo": "",
     *            "companyNo": "",
     *            "industryNo": "",
     *            "isInit": "", 是否为初始(当时的需求是刚进来是初始状态，这个初始状态会请求外面选择的省的数据，如果数据已经加载完，则需要加载全国的数据，然后筛选过后，会显示筛选后的数据，不再显示全国的)
     *            "limit": 0,
     *            "page": 0,
     *            "provinceNo": "",
     *            "userNo": "",
     *            "workNo": ""
     *            }
     * @return 劳务用工前台和后台的列表项
     */
    @POST("team/laborEmployment/list")
    Call<BaseEntity<ListResponse<List<LabourServiceAndEmploymentEntity>>>> getLabourList(@Body Map<String, Object> map);

    /**
     * 获取施工队和班组工队的前台和后台的列表项
     *
     * @param map 上传的参数 {
     *            "areaNoList": [],
     *            "cityNo": "",
     *            "companyNo": "",
     *            "fifthCategoryNo": "",
     *            "firstCategoryNo": "",
     *            "fourCategoryNo": "",
     *            "isCompany": 0,
     *            "limit": 0,
     *            "memberSeachType": "",
     *            "page": 0,
     *            "provinceNo": "",
     *            "secondCategoryNo": "",
     *            "sixthCategoryNo": "",
     *            "sortType": "",
     *            "teamName": "",
     *            "teamNumber": "",
     *            "teamSize": "",
     *            "teamType": 0,
     *            "thirdCategoryNo": ""
     *            }
     * @return 施工队和班组工队的前台和后台的列表项
     */
    @POST("team/teamInfo/search")
    Call<BaseEntity<ListResponse<List<FindPackersEntity>>>> getTeamList(@Body Map<String, Object> map);

    /**
     * 人气工队 v2/app/packer/teamPopular
     *
     * @param map 上传的参数 {
     *            "areaNoList": [],
     *            "cityNo": "",
     *            "fifthCategoryNo": "",
     *            "firstCategoryNo": "",
     *            "fourCategoryNo": "",
     *            "limit": 0,
     *            "page": 0,
     *            "provinceNo": "",
     *            "secondCategoryNo": "",
     *            "sixthCategoryNo": "",
     *            "teamNumber": "",
     *            "teamSize": "",
     *            "teamType": 0,
     *            "thirdCategoryNo": ""
     *            }
     * @return 人气工队的前台和后台的列表项
     */
    @POST("team/teamInfo/teamPopular")
    Call<BaseEntity<ListResponse<List<PopularWorkersEntity>>>> getPopularWorkers(@Body Map<String, Object> map);

    /**
     * 工队需求（临时用工）用工图查
     *
     * @param map
     * @return
     */
    @POST("team/employment/temporaryWorkMap")
    Call<BaseEntity<List<EmploymentEntity>>> getEmploymentMap(@Body Map<String, Object> map);

    /**
     * 工队同城用工（劳务用工）图查
     *
     * @param map
     * @return
     */
    @POST("team/laborEmployment/laborMap")
    Call<BaseEntity<List<LabourServiceAndEmploymentEntity>>> getLabourMap(@Body Map<String, Object> map);

    /**
     * 劳务用工根据编号查询该数据是否删除 true删除 false未删除
     *
     * @param no
     * @return
     */
    @GET("team/employment/isDeleteEmployment")
    Call<BaseEntity<Boolean>> isDeleteEmployment(@Query("no") String no);

    /**
     * 劳务用工根据编号查询该数据是否删除 true删除 false未删除
     *
     * @param no
     * @return
     */
    @GET("team/laborEmployment/isDeleteLaborEmployment")
    Call<BaseEntity<Boolean>> isDeleteLaborEmployment(@Query("no") String no);

    /**
     * 工程分包图查
     *
     * @param map
     * @return
     */
    @POST("v3/app/recruit/projectSubcontractingMap")
    Call<BaseEntity<List<TenderListEntity>>> projectSubcontractingMap(@Body Map<String, Object> map);

    /**
     * 临时用工详情
     *
     * @param no 当前这条的no
     * @return 临时用工的属性对象
     */
    @GET("team/employment/detailEmployment")
    Call<BaseEntity<SelfEmploymentEditEntity>> detailEmployment(@Query("no") String no);

    /**
     * 灵活用工----薪资单位 v2/app/user/packer/getEmploymentSalaryUnit
     *
     * @return 临时用工列表
     */
    @GET("team/employment/getEmploymentSalaryUnit")
    Call<BaseEntity<List<PickSelectEntity>>> getEmploymentSalaryUnit();

    /**
     * 劳务用工详情
     *
     * @param no
     * @return
     */
    @GET("team/laborEmployment/detail")
    Call<BaseEntity<LaborWorkMomentDetailEntity>> getLaborWorkDetail(@Query("no") String no);

    /**
     * 工程公司 列表
     *
     * @param map 参数 {
     *            "areaNo": "",
     *            "categoryNo": "",
     *            "cityNo": "",
     *            "firstCategoryNo": "",
     *            "limit": 0,
     *            "page": 0,
     *            "provinceNo": "",
     *            "secondCategoryNo": "",
     *            "teamNumber": "",
     *            "teamSize": "",
     *            "thirdCategoryNo": ""
     *            }
     * @return 工程公司列表
     */
    @POST("team/teamInfo/listEngineeringCompany")
    Call<BaseEntity<ListResponse<List<EngineeringCompanyEntity>>>> getEngineeringList(@Body Map<String, Object> map);

    /**
     * 工人详情-2.8.4   v2/app/user/packer/detailWorker
     *
     * @param no   当前这条的no
     * @param type 类型 传2
     * @return
     */
    @GET("team/worker/detailWorker")
    Call<BaseEntity<SelfWorkerPublishEntity>> getWorkerDetail(@Query("no") String no, @Query("type") String type);

    /**
     * 工种报价详情
     *
     * @param no 选中的这个条目的no
     * @return
     */
    @GET("team/teamPrice/priceDetail")
    Call<BaseEntity<SelfTeamOfferEntity>> getDetail(@Query("no") String no);

    /**
     * 工队详情
     *
     * @param no 选中的这个条目的no
     * @return
     */
    @GET("team/teamInfo/teamDetail/{no}")
    Call<BaseEntity<TeamDetailEntity>> getTeamDetail(@Path("no") String no);

    //会员类型
    @GET("team/common/getMemberTypeList")
    Call<BaseEntity<List<CommonPopEntity>>> getMemberTypeList();

    //我的企业列表
    @GET("team/common/CompanyList")
    Call<BaseEntity<List<MyCompanyEntity>>> myCompany();

    //会员等级
    @GET("v1/app/member/memberLevelList")
    Call<BaseEntity<List<CommonPopEntity>>> getMemberLeve();

    //申请加盟
    @POST("team/teamInfo/applyJoin")
    Call<BaseEntity> applyJoin(@Body ApplyCompanyEntity applyCompanyEntity);

    //合作类型
    @GET("team/common/getServiceTypeList")
    Call<BaseEntity<List<CommonPopEntity>>> getServiceTypeList();

    //邀请加盟
    @POST("team/teamInfo/inviteComJoin")
    Call<BaseEntity> inviteComJoin(@Body InviteCompanyEntity applyCompanyEntity);

    //在线联系人
    @GET("team/common/getOnlineConcat")
    Call<BaseEntity<OnLineEntity>> getOnline();

    //工队相册列表
    @POST("team/album/teamAlbum")
    Call<BaseEntity<ListResponse<List<TeamAlbumEntity>>>> getTeamAlbumList(@Query("limit") int limit,@Query("page") int page);

    //工队相册保存
    @POST("team/album/saveTeamAlbum")
    Call<BaseEntity> saveTeamAlbum(@Body List<TeamAlbumEntity> albumEntity);

    /**
     * 企业网站--专业设备
     *
     * @param companyNo 选中的这个条目的企业网站的no
     * @return
     */
    @GET("team/equipment/comStoreEuipment")
    Call<BaseEntity<List<SelfTeamDeviceEntity>>> getProfessionDevice(@Query("companyNo") String companyNo);

    /**
     * 企业网站--团队人员
     *
     * @param companyNo 选中的这个条目的企业网站的no
     * @return
     */
    @GET("team/teamMembers/comStoreTeamMember")
    Call<BaseEntity<List<TeamPersonEntity>>> getMember(@Query("companyNo") String companyNo);

    /**
     * 企业网站--经营工队列表
     *
     * @param companyNo 选中的这个条目的企业网站的no
     * @return
     */
    @GET("team/teamInfo/comStoreTeamInfo")
    Call<BaseEntity<List<FindPackersEntity>>> getTeam(@Query("companyNo") String companyNo);

    /**
     * 企业网站--工种报价
     *
     * @param companyNo 选中的这个条目的企业网站的no
     * @return
     */
    @GET("team/teamPrice/comStoreTeamPrice")
    Call<BaseEntity<List<TeamPriceItemEntity>>> getQuotePrice(@Query("companyNo") String companyNo);

    /**
     * 企业网站--工队业绩
     *
     * @param companyNo 选中的这个条目的企业网站的no
     * @return
     */
    @GET("team/teamResults/comStoreTeamResult")
    Call<BaseEntity<List<ShopTeamInfoEntity>>> getPerformance(@Query("companyNo") String companyNo);

    /**
     * 工队简介发布
     *
     * @param map 参数{
     *            "address": "",
     *            "affBusinessAddress": "",
     *            "affRegisteredCapital": "",
     *            "affiliatedUnitPic": "",
     *            "areaNo": "",
     *            "authTime": 0,
     *            "avatarAddress": "",
     *            "basicSituation": "",
     *            "businessAddress": "",
     *            "businessLicense": "",
     *            "businessPhil": "",
     *            "businessScopes": [
     *            {
     *            "fifthCategoryNo": "",
     *            "firstCategoryNo": "",
     *            "fourCategoryNo": "",
     *            "secondCategoryNo": "",
     *            "sixthCategoryNo": "",
     *            "thirdCategoryNo": ""
     *            }
     *            ],
     *            "categoryNo": [],
     *            "certificateNumber": "",
     *            "cityNo": "",
     *            "contact": "",
     *            "creditCode": "",
     *            "filePath": [],
     *            "imDepartmentId": "",
     *            "imId": "",
     *            "imName": "",
     *            "latitude": "",
     *            "legalComName": "",
     *            "legalName": "",
     *            "legalPerson": "",
     *            "legalPhone": "",
     *            "longitude": "",
     *            "manageStructure": "",
     *            "no": "",
     *            "phoneNumber": "",
     *            "principalAge": 0,
     *            "principalHometown": "",
     *            "principalNation": "",
     *            "principalSex": 0,
     *            "provinceNo": "",
     *            "registeredCapital": "",
     *            "serviceAreas": [
     *            {
     *            "areaNo": "",
     *            "name": ""
     *            }
     *            ],
     *            "teamHistory": "",
     *            "teamName": "",
     *            "teamNumber": "",
     *            "teamType": 0,
     *            "trustCompany": ""
     *            }
     * @return
     */
    @POST("team/teamInfo/addTeamInfo")
    Call<BaseEntity<Object>> addTeamInfo(@Body Map<String, Object> map);

    /**
     * 个人中心---工队列表
     * @param map 参数 {
     *   "companyNo": "",
     *   "limit": 0,
     *   "page": 0,
     *   "teamName": "",
     *   "teamType": 0,
     *   "userNo": ""
     * }
     * @return
     */
    @POST("team/teamInfo/userPage")
    Call<BaseEntity<ListResponse<List<FindPackersEntity>>>> pageTeamInfoList(@Body Map<String,Object> map);

    /**
     * 工队简介 工队详情
     * @param map 参数 {
     *      "no":当前这条的no
     * }
     * @return
     */
    @POST("team/teamInfo/teamDetailByNo")
    Call<BaseEntity<SelfTeamIntroduceEntity>> getTeamInfo(@Body Map<String,Object> map);

    /**
     * 工队团队规模
     * @param type
     * @return
     */
    @GET("team/common/teamSizeFindAll")
    Call<BaseEntity<List<PickSelectEntity>>> getTeamScale(@Query("type") String type);

    /**
     * 删除我的工队
     * @param map 参数 {
     *   "no": ""
     * }
     * @return
     */
    @POST("team/teamInfo/deleteTeamInfo")
    Call<BaseEntity> delTeamList(@Body Map<String,Object> map);

    /**
     * 灵活用工----用工状态
     * @return
     */
    @GET("team/employment/getEmploymentStatus")
    Call<BaseEntity<List<PickSelectEntity>>> getEmploymentStatus();

    /**
     * 自有设备发布详情
     * @param map 参数
     * @return
     */
    @POST("team/equipment/detailEquipment")
    Call<BaseEntity<SelfTeamDeviceEntity>> detailEquipment(@Body Map<String,Object> map);

    /**
     * 施工业绩详情
     * @param map 参数  {
     *      “no”:"" 参数 编号
     *}
     * @return
     */
    @POST("team/teamResults/detailTeamResults")
    Call<BaseEntity<SelfTeamAchieveEntity>> detailTeamResults(@Body Map<String,Object> map);

    /**
     * 工程公司----资质类型
     * @return
     */
    @GET("team/common/getQualifyTypeTreeList")
    Call<BaseEntity<List<AddressEntity<List<AddressEntity>>>>> intelligenceType();

    /**
     * 工程公司----资质等级
     * @return
     */
    @GET("team/common/getQualifyLevel")
    Call<BaseEntity<List<AddressEntity>>> intelligenceLevel();

    /**
     * 工队首页----成员单位
     * @param page
     * @param limit
     * @return
     */
    @GET("team/common/getMemberCustomerList")
    Call<BaseEntity<ListResponse<List<LeaguerCompanyEntity>>>> leaguerCompany(@Query("limit") int limit,@Query("page") int page);

    /**
     * 工队首页----会员单位
     * @param relation
     * @param limit
     * @param page
     * @return
     */
    @POST("team/common/getMixMemberList")
    Call<BaseEntity<ListResponse<List<MemberCompanyEntity>>>> memberCompany(@Query("relation") int relation, @Query("limit") int limit,@Query("page") int page);

    /**
     *
     * @param no 劳务编号
     * @return
     */
    @GET("team/occupation/getNewWorkType")
    Call<BaseEntity<List<PickSelectEntity>>> getWorkType(@Query("categoryNo") String no);

    /**
     * 所有工种接口
     * @param type 报价工种这里如果为了和pc获取工种接口保持一致 传 2
     * @return
     */
    @GET("team/occupation/getNewWorkType")
    Call<BaseEntity<List<PickSelectEntity>>> getWorkType(@Query("type")int type);
    /**
     * 个人中心-工种报价-列表
     * @param map 参数 {
     *   "areaNo": 0,
     *   "cityNo": 0,
     *   "companyNo": "",
     *   "limit": 0,
     *   "page": 0,
     *   "provinceNo": "",
     *   "typeWork": "",
     *   "userNo": ""
     * }
     * @return
     */
    @POST("team/v2/app/personalCenter/pageTeamPrice")
    Call<BaseEntity<ResponseList<List<SelfTeamOfferEntity>>>> getTeamPrice(@Body Map<String,Object> map);

    /**
     * 个人中心-工种报价删除
     * @param map
     * @return
     */
    @POST("team/v2/app/personalCenter/deleteTeamPrice")
    Call<BaseEntity<Object>> deleteTeamPrice(@Body Map map);


    /**
     * 工种报价发布，编辑
     * @param entity 工队发布的对象
     * @return
     */
    @POST("team/v2/app/personalCenterTeamIssue/addTeamPrice")
    Call<BaseEntity<Object>> addTeamPrice(@Body SelfTeamOfferEntity entity);

    //个人中心-根据企业编号或用户编号获取工队名称
    @GET("team/v2/app/personalCenter/nameByComAndUserNo")
    Call<BaseEntity<List<PickSelectEntity>>> getNameByComAndUserNo(@Query("companyNo") String companyNo,@Query("userNo") String userNo);

    //工队二级分类
    @GET("team/v2/app/engineeringTeam/getSecondCategory")
    Call<BaseEntity<List<PickSelectEntity>>> getSecondCategory(@Query("cid1") String cid1);

    // 获取民族
    @GET("team/common/getNationRecord")
    Call<BaseEntity<List<PickSelectEntity>>> getNationRecord();

    //工程绩效-列表
    @POST("team/v2/app/personalCenter/pageTeamResult")
    Call<BaseEntity<ResponseList<List<SelfTeamAchieveEntity>>>> getTeamResult(@Body Map map);

    // 工程业绩-删除
    @POST("team/v2/app/personalCenter/deleteTeamResult")
    Call<BaseEntity<Object>> deleteTeamResult(@Body Map map);
    // 工程业绩发布，编辑
    @POST("team/v2/app/personalCenterTeamIssue/addTeamResults")
    Call<BaseEntity<Object>> addTeamResults(@Body SelfTeamAchieveEntity entity);

    // 个人中心-工种报价详情
    @POST("team/v2/app/personalCenterTeamIssue/detailTeamPrice")
    Call<BaseEntity<SelfTeamOfferEntity>> detailTeamPrice(@Query("no") String no);

    //首页-工队报价列表
    @POST("team/teamPrice/findPriceList")
    Call<BaseEntity<com.swgk.core.base.model.entity.ListResponse<List<TeamPriceItemEntity>>>> findPriceList(@Body Map map);

    /**
     *  获取企业信息
     * @param no 公司的no
     * @return
     */
    @GET("team/common/getCompanyInfoByNo/{companyNo}")
    Call<BaseEntity<BuildCompanyInfoEntity>> companyInfo(@Path("companyNo") String no);

    /**
     *  个人中心工队发布-施工业绩详情
     * @param no 公司的no
     * @return
     */
    @POST("team/v2/app/personalCenterTeamIssue/detailTeamResults")
    Call<BaseEntity<SelfTeamAchieveEntity>> buildInfo(@Query("no") String no);

    /**
     * 团队设备-列表(现自有设备)
     * @param map 参数 {
     *   "companyNo": "",
     *   "limit": 0,
     *   "name": "",
     *   "page": 0,
     *   "teamByType": 0,
     *   "teamNo": "",
     *   "teamRoleNo": "",
     *   "userNo": ""
     * }
     * @return
     */
    @POST("team/v2/app/personalCenter/pageEquipment")
    Call<BaseEntity<ResponseList<List<SelfTeamDeviceEntity>>>> getTeamDeviceList(@Body Map<String,Object> map);

    /**
     * 工队人员-列表
     * @param contactPhone 参数 {
     * companyNo	企业编号	query	false string
     * contactPhone	联系电话	query	false string
     * limit	条数	query	false integer(int32)
     * name	员工姓名	query	false string
     * page	页数	query	false integer(int32)
     * teamByType	过滤工队已经关联的数据	query	false integer(int32)
     * teamNo	工队编号	query	false string
     * teamRoleNo	v3.0.0 团队角色no	query	false string
     * type	工龄	query	false integer(int32)
     * userNo	用户编号	query	falsestring
     * workType	工种
     * }
     * @return
     */
    @POST("team/v2/app/personalCenter/pageTeamMember")
    Call<BaseEntity<ResponseList<List<SelfTeamMemberEntity>>>> getTeamMember(@Query("contactPhone") String contactPhone
            ,@Query("limit") int limit,@Query("name") String name,@Query("page") int page,@Query("teamByType") int teamByType
            ,@Query("teamNo") String teamNo,@Query("type") String type
            ,@Query("workType") String workType);

    /**
     * 工队人员详情
     * @param no
     * @return
     */
    @POST("team/v2/app/personalCenterTeamIssue/detailTeamMember")
    Call<BaseEntity<SelfTeamMemberEntity>> detailTeamMember(@Body Map<String,Object> no);
}
